/*******************************************************************************
* Copyright (c) 2007, 2013 Innoopract Informationssysteme GmbH and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Innoopract Informationssysteme GmbH - initial API and implementation
* EclipseSource - ongoing development
******************************************************************************/
package org.eclipse.rap.ui.internal.branding;
import static org.eclipse.rap.rwt.internal.service.ContextProvider.getApplicationContext;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.eclipse.rap.rwt.internal.lifecycle.EntryPointManager;
import org.eclipse.rap.rwt.internal.lifecycle.EntryPointRegistration;
import org.eclipse.rap.rwt.internal.service.ContextProvider;
public final class BrandingUtil {
public static final String ENTRY_POINT_BRANDING = "org.eclipse.rap.ui.branding";
public static String getCurrentBrandingId() {
EntryPointManager entryPointManager = getApplicationContext().getEntryPointManager();
HttpServletRequest request = ContextProvider.getRequest();
EntryPointRegistration registration = entryPointManager.getEntryPointRegistration( request );
Map<String, String> properties = registration.getProperties();
return properties.get( BrandingUtil.ENTRY_POINT_BRANDING );
}
public static String headerMarkup( AbstractBranding branding ) {
StringBuilder buffer = new StringBuilder();
appendHeaderMarkup( buffer, branding );
return buffer.toString();
}
private static void appendHeaderMarkup( StringBuilder buffer, AbstractBranding branding ) {
Header[] headers = branding.getHeaders();
if( headers != null ) {
buffer.append( createMarkupForHeaders( headers ) );
}
}
private static String createMarkupForHeaders( Header... headers ) {
StringBuilder buffer = new StringBuilder();
for( Header header : headers ) {
appendHeaderMarkup( buffer, header );
}
return buffer.toString();
}
private static String appendHeaderMarkup( StringBuilder buffer, Header header ) {
buffer.append( "<" );
buffer.append( header.getTagName() );
buffer.append( " " );
String[] names = header.getNames();
String[] values = header.getValues();
for( int i = 0; i < names.length; i++ ) {
String name = names[ i ];
String value = values[ i ];
if( name != null && value != null ) {
buffer.append( name );
buffer.append( "=\"" );
buffer.append( value );
buffer.append( "\" " );
}
}
buffer.append( "/>\n" );
return buffer.toString();
}
private BrandingUtil() {
// prevent instantiation
}
}